<?php
Class ListapreciosController extends AppController { 
	var $name = 'Listaprecios';
	var $helpers = array('ajax');
	var $components = array('ModelLoader');
	
	function index(){
		$conditions = array('');
		$aListas = $this->Listaprecio->findAll(null,null,'id desc');;

		$this->set('aListas',$aListas);
	}
	
	/*
	 * Agrega una lista y un precio a esa lista nueva
	 */
	function nuevaLista(){

		$fecha = date('Y-m-d');

		//inserta la lista
		$insert_query = "insert into listaprecios (`id`,`fecha`) values (NULL,'$fecha')";
		$this->Listaprecio->execute($insert_query);

		//inserta un precio en la lista
		$aLast = $this->Listaprecio->findAll(null,null,'id desc');
		$iLast = $aLast[0]['Listaprecio']['id'];
		$fPrecio = 1;
		$iCantIni = 0;
		$insert_query = "insert into precios (`id`,`listaprecio_id`,`precio`,`cant_ini`,`cant_fin`) values (NULL,'$iLast','$fPrecio','$iCantIni',NULL)";
		$this->Listaprecio->execute($insert_query);
		
		$aListas = $this->Listaprecio->findAll(null,null,'id desc');;
		$this->set('aListas',$aListas);
		$this->render('showListas','ajax');
	}
	
	/*
	 * Elimina un registro de precio en la base de datos, si este es el ultimo tambien elimina la lista de precios
	 */
	function eliminar($iIdPrecio){

		$this->ModelLoader->setController($this);
		$this->ModelLoader->load('Precio');
		
		$aPrecio = $this->Precio->find(array('Precio.id'=>$iIdPrecio));
		$iLista = $aPrecio['Precio']['listaprecio_id'];
		
		$aPrecios = $this->Precio->findAll(array('listaprecio_id'=>$iLista));

		//borra el precio
		$this->Precio->del($iIdPrecio);

		$cant = sizeof($aPrecios);
		if($cant==1)//si es el unico precio tambien borra la lista
			$this->Listaprecio->del($iLista);


		
		$aListas = $this->Listaprecio->findAll(null,null,'id desc');;
		$this->set('aListas',$aListas);
		$this->data = '';
	    $this->render('showListas', 'ajax');
	}
	
	/*
	 * Agrega un precio a la base de datos y renderiza nuevamente la pagina con ajax
	 */
	function agregarPrecio(){

			$cont = 1;
			$aTemp = array();
			$iSize = sizeof($this->data['Precio']);
			$a = 0;
			foreach($this->data['Precio'] as $key => $value){

					//cont = 1 es el cant_ini
					//cont = 2 es el cant_fin
					//cont = 3 es el precio
					$aTemp[$cont] = $value;
					
					if($cont==3){
						//realiza el update
						$aDato = explode('_',$key);
						$iIdPrecio = $aDato[0];
						$iLista = $aDato[2];
						if($iIdPrecio!='0'){
							$fPrecio 	= $aTemp[3];
							$iCantFin 	= $aTemp[2];
							$iCantIni 	= $aTemp[1];

							$query = "update precios p SET p.precio = '$fPrecio', p.cant_ini = '$iCantIni' , p.cant_fin = '$iCantFin' WHERE p.id = $iIdPrecio";
							$this->Listaprecio->execute($query);					
							$cont = 0;
						}
						else{
							$fPrecio 	= $aTemp[3];
							$iCantFin 	= $aTemp[2];
							$iCantIni 	= $aTemp[1];
						}
						
					}
					$cont ++;
			}
			$fPrecio = 1;
			//guardo y llamo de nuevo a la vista
			$insert_query = "insert into precios (`id`,`listaprecio_id`,`precio`,`cant_ini`,`cant_fin`) values (NULL,'$iLista','$fPrecio','$iCantIni',NULL)";
			if($iCantIni!='')
				$this->Listaprecio->execute($insert_query);

			//update fecha
			$fecha = $this->data['PrecioF']['fecha'];
			$fecha = $this->convertDmyToYmd($fecha);
			$query = "update listaprecios p SET p.fecha = '$fecha' WHERE p.id = $iLista";
			$this->Listaprecio->execute($query);	

			//renderizo con ajax
			$aListas = $this->Listaprecio->findAll(null,null,'id desc');
			$this->set('aListas',$aListas);
			$this->render('showListas','ajax');

	}
	
	/*
	 * Devuelve el precio sugerido segun la cantidad de cajas
	 * @return 
	 */
	function getPrecio($iIdCliente,$iCantCajas){
		
		//fecha "Y-m-d"
		$dContratoInicio = $this->requestAction("clientes/getFechaInicioContrato/$iIdCliente/");
		
		//obtengo la lista de precios segun la fecha de inicio de contrato y la cantidad de cajas
		$conditions = "Listaprecio.fecha <= '$dContratoInicio'";
		$fields = array('id','fecha');
		$order = 'Listaprecio.fecha desc';
		$lista = $this->Listaprecio->findAll($conditions,$fields,$order);
		
		if(isset($lista[0]['Precio'])){
			$precios = $lista[0]['Precio'];
			
			//controla los precios de la lista
			foreach($precios as $precio){
	
				if($precio['cant_fin']==null || $precio['cant_fin']==0)
					$precio['cant_fin']=1000000000;
		
				$cant_ini = $precio['cant_ini'];
				$cant_fin = $precio['cant_fin'];
				//echo "cant ini $cant_ini cant fin $cant_fin <br/>";
				if( $iCantCajas >= $cant_ini && $iCantCajas <= $cant_fin ){
					$monto = $precio['precio'];
					break;
				}
			}
			return $monto;
		}
		else
			return 1;
		
		
	}
}
?>
